package com.xopencode.decimal;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;

/**
 * @author Mcb
 * @date 2022/4/4
 * @apiNote
 */
public class DecimalDemo2 {
    public static void main(String[] args) {
        System.out.println(format("00.000",new BigDecimal("3.14"))); // 03.140,占位符多余用0填补
        System.out.println(format("0.0",new BigDecimal("31.14"))); // 31.1 整数保留
        System.out.println(format("0.0",new BigDecimal("31.16"))); // 31.2 整数保留，小数四舍五入
        System.out.println(format("##.###",new BigDecimal("3.14"))); // 3.14，占位符 多余舍弃
        System.out.println(format("#.#",new BigDecimal("31.14"))); // 31.1 整数保留
        System.out.println(format("#.#",new BigDecimal("31.16"))); // 31.2 整数保留，小数四舍五入
        System.out.println("---------------------------------");
        DecimalFormat df = new DecimalFormat("#.00");
        System.out.println(df.format(new BigDecimal("1.006")));
        DecimalFormat df2 = new DecimalFormat("#.##");
        System.out.println(df2.format(new BigDecimal(".006")));
        DecimalFormat df3 = new DecimalFormat("0.00");
        System.out.println(df3.format(new BigDecimal(".006")));
    }

    public static String format(String pattern, BigDecimal bigDecimal){
        DecimalFormat decimalFormat = new DecimalFormat(pattern);
        decimalFormat.setRoundingMode(RoundingMode.DOWN);
        return decimalFormat.format(bigDecimal);
    }
}
